#pragma once

#include <zookeeper/zookeeper.h>
#include <string>

// ZkClient
class ZkClient {
public:
    ZkClient();
    ~ZkClient();

    // 连接 zk 服务端
    void Connect(std::string ip, uint16_t port);
    // 创建 znode 指定路径 数据 是否临时节点
    bool CreateNode(std::string path, std::string data, bool is_ephemeral);
    // 删除 znode 指定路径
    bool DeleteNode(std::string path);
    // 获取数据 指定路径
    std::string GetData(std::string path);
    // 设置数据 指定路径 数据
    bool SetData(std::string path, std::string data);

private:
    // zk 句柄
    zhandle_t* m_zk_handle_;
};